package com.example.bitmaploading.utils;

import android.content.Context;
import android.util.Log;

public class LogUtils {
  //private static final String TAG = LogUtils.class.getSimpleName();

  /** 是否打开Log日志输出，true打开，false关闭 */
  private static boolean logOn = true;
  
  /** 调试日志类型 */
  public static final int DEBUG = 111;
  /** 错误日志类型 */
  public static final int ERROR = 112;
  /** 信息日志类型 */
  public static final int INFO = 113;
  /** 详细信息日志类型 */
  public static final int VERBOSE = 114;
  /** 警告调试日志类型 */
  public static final int WARN = 115;
  
  /**
   * @param context
   * @param Message
   * @param Style
   *  </br>DEBUG   调试日志类型
   *  </br>ERROR   错误日志类型
   *  </br>INFO    信息日志类型
   *  </br>VERBOSE 详细日志类型
   *  </br>WARN    警告日志类型
   */
  public static void showLog(Context context, String Message, int Style) {
    if (logOn) {
      String tag = context.getClass().getSimpleName();
      switch (Style) {
      case DEBUG:
        Log.d(tag, Message);
        break;
      case ERROR:
        Log.e(tag, Message);
        break;
      case INFO:
        Log.i(tag, Message);
        break;
      case VERBOSE:
        Log.v(tag, Message);
        break;
      case WARN:
        Log.w(tag, Message);
        break;
      }
    }
  }

  /**
   * 由于 LogCat 在 Eclipse 中一次最长只输出 4000 左右字符串
   * </br>对于返回的较长的 JSON 字符串无法显示完全，故作分段处理
   * </br>默认 INFO 级别
   * 
   * @param context
   * @param Message
   */
  public static void showLog(Context context, String Message) {
    if (Message != null && !"".equalsIgnoreCase(Message)) {
      int maxLogSize = 1000;
      int start;
      int end;
      for (int i = 0; i <= Message.length() / maxLogSize; i++) {
        start = i * maxLogSize;
        end = (i + 1) * maxLogSize;
        end = end > Message.length() ? Message.length() : end;
        showLog(context, Message.substring(start, end), INFO);
      }
    }
  }
  
}
